import { BattleRole } from "../../role/BattleRole";

/**
 * 触发结果
 */
export interface ITriggerResult {
    resultType: string
}

/**
 * 攻击伤害结果
 */
export class DamageResult implements ITriggerResult {
    resultType: string;
    /**施法者 */
    caster: BattleRole;
    /**目标 */
    target: BattleRole;
    /**伤害 */
    damage: number;
    /**是否命中 */
    isHit: boolean;
    /**是否暴击 */
    isCritial: boolean;
    /**是否格挡 */
    isGeDang: boolean;
    /**是否触发连击 */
    isContinueAttack: boolean;
    /**是否击败敌人 */
    isKill: boolean;
    /**吸血 */
    xiXue: number;
    /**反伤 */
    fanShang: number;
    /**第几段伤害 */
    damageIndex: number;
}

/**
 * buff伤害结果
 */
export class BuffDamageResult implements ITriggerResult {
    resultType: string;
    /**目标 */
    target: BattleRole;
    /**伤害 */
    damage: number;
    /**buffid */
    buffId: number;
    /**buff类型 */
    buffType: number;
}

/**
 * 治疗结果
 */
export class TreateResult implements ITriggerResult {
    resultType: string;
    /**目标 */
    target: BattleRole;
    /**治疗量 */
    treateNum: number;
}

/**
 * buff效果结果
 */
export class BuffEffectResult implements ITriggerResult {
    resultType: string;
    /**目标 */
    target: BattleRole;
    /**buffid */
    buffId: number;
    /**buff类型 */
    buffType: number;
    /**效果结果 */
    effectResult: ITriggerResult[];
}